package com.adisi.servlets;

import java.io.IOException;
import com.adisi.objetos.Usuario;
import com.adisi.objetos.Seguridad;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * Servlet implementation class login
 */
@WebServlet(description = "Clase para habilitar el acceso.", urlPatterns = { "/login" })
public class SeguridadServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
    private Seguridad seguridad = new Seguridad();

    public void init() throws ServletException {
    	/*
        try {
            // Get DataSource
            Context initContext  = new InitialContext();
            Context envContext  = (Context)initContext.lookup("java:/comp/env");
            dataSource = (DataSource)envContext.lookup("jdbc/mssql");
 
             
        } catch (NamingException e) {
            e.printStackTrace();
        }
        */
    }	
	
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//No se aceptan llamadas tipo get, se recarga la pagina index
		//Se aprovecha esto para realizar el logout.
		// TODO Mejorar el logout
		response.setContentType("text/html");
		
		request.getSession().removeAttribute("usuario");
		
		String page = new String("inicio.jsp");
		response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
		response.setHeader("Location", page);
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		Usuario usuario = null;

		String page = new String("index.jsp?lf");
		
		response.setContentType("text/html");
		
		String accion  = request.getParameter("accion").trim();
		
		if(accion.equals("login")){
			String nick = request.getParameter("LoginUserName").trim();
			String clave  = request.getParameter("LoginPassword").trim();
			StringBuilder sb = new StringBuilder();
			
			usuario = seguridad.Login(nick, clave);
			
			if(usuario!=null) {
				
				request.getSession().setAttribute("usuario", usuario);
				
				sb.append("Bienvenido ");
				sb.append(usuario.getNombre());
				sb.append(".");
				
				if(Seguridad.validarUsuarioProceso(usuario, "VerJornadas"))
					page = "jornada?lst";
				else
					page = "inicio.jsp";
				
				request.setAttribute("msg", sb.toString());
				request.setAttribute("msg_type", "success");
				
				
			}
		} 
		
		request.getRequestDispatcher(page).forward(request, response);			

		
	}


}
